"""
接收用户输入的任意数字，计算其斐波那契数列，并使用列表方式储存最后打印出来。
需要注意用户输入不合法的问题
    注：斐波那契数列（Fibonacci sequence），该数列从第3项开始，每一项都等于前两项之和
        0、1、1、2、3、5、8、13、21、34、……
"""


# 初始化一个空列表来存储斐波那契数列
fib_sequence = []

# 接收用户输入
num_str = input("请输入一个数字：")


num = int(num_str)

# 使用if-elif-else结构处理不同的情况
if num > 0:
    if num == 1:
        fib_sequence = [0]
    elif num == 2:
        fib_sequence = [0, 1]
    else:
        fib_sequence = [0, 1]
        for i in range(2, num):
            next_value = fib_sequence[i - 1] + fib_sequence[i - 2]  # 计算下一个斐波那契数
            fib_sequence.append(next_value)
    print(f"前{num}个斐波那契数列为：{fib_sequence}")


else:
    print("输入不合法，请输入一个正整数")
def fibonacci(n):
    fib_list = [0, 1]
    while len(fib_list) < n:
        fib_list.append(fib_list[-1] + fib_list[-2])
    return fib_list

while True:
    num = input("请输入一个正整数: ")
    try:
        num = int(num)
        if num <= 0:
            print("请输入一个正整数。")
            continue
        print(fibonacci(num))
        break
    except ValueError:
        print("输入不合法，请输入一个有效的正整数。")